home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
BBS in a Box 7
/
BBS in a Box - Macintosh - Volume VII (BBS in a Box) (January 1993).iso
/
Files
/
Prog
/
N-P
/
Programmer.cpt
/
Programmer
/
Sys 4.1 Pgmr Notes 1_2
next >
Wrap
Text File
|
1987-05-08
|
24KB
|
455 lines
System 4.1 Programmers' Notes (Part 1 of 2, 25K)
System 4.0 to System 4.1 Change History
This document outlines developer visible changes to the System Tools
disk 2.0 and Utilities disk 2.0. This includes changes to System 4.1 and
Finder 5.5 and related files, and is a summary based on engineers' release
notes. This information is in no way guaranteed to be accurate or
complete.
Copyright Apple Computer, Inc. 1987 All Rights Reserved.
Part 1 of 2
System Tools:
TeachText
No Changes.
System Folder:
AppleTalk ImageWriter
Took out Control Panel and KeyCaps from installer script.
Clipboard File
No changes.
Easy Access
Easy Access is a new file in your System Folder containing two
features, "sticky keys" and "mouse keys." These features
assist people with disabilities who have difficulty typing using
both hands on the keyboard, or manipulating the mouse. And
they're useful to anyone who wants to be able to use the
keyboard one-handed, or make very fine movements of the
pointer with better control. See the 'Read Me' file on the
System Tools disk.
Finder
Weird case of address error when opening trashed resource file
Copy hang in low FCB situation
Region handles (8) allocated open opening a window are
deallocated (rather than leaving 160 bytes hanging)
Adjusts a window, made large on a 12"+ screen, to a reasonable
size when opened on a smaller screen
Handles case of a subfolder of an identical name moved to same
level
TextEdit highlighting now sets ColorInvert for InvertRect calls
Copy get-info comments for two-forked files
Copy locked bits correctly
Duplicate sometimes renames buried files
Center dialogs/alerts on larger screens
Handle resource errors so large desktop files don't appear
Load SICNs on boot disk eject so disk swaps are cut back; also
preload fat trashcan.
Auto-watch disabled for a couple new certain cases when DAs
are brought up.
Disable autowatch during MenuKey and GetNext Event because DA
may be called.
Copy comments on second fork rather than first so comment
field won't be wiped by second fork SetCatInfo; skip info setting
on first fork (no longer needed); also copy icons with second
fork (minor - might as well delay this).
Fixed bug on duplicate which trashed data fork of file; we don't
exit our InputLoop due to a TMFOErr if we have freed up FCBs;
we loop opening both file forks even if we run out of space.
LookUpName no longer kills memory allocation 0 when passed a
nil. It will not produce conflicts with gfiles in HFS directories
which have dirIDs of -1 (invalid)
PreCheck call to PFOFldrBuried for HFS -> trash moves was
bogus because stack frame was not set up with HVolInfo.
Delayed this to Preflight return. (this was causing a DIV0 error
in some cases).
Fixed incest check in Preflight (PFOMarkBuried)
General
Includes Desktop pattern, Rate of Insertion Point Blinking, Menu
blinking, Time set, Date set, set Ram cache and speaker volume
for Control Panel.
ImageWriter
Took out Control Panel and KeyCaps from installer Script.
Key Layout
Keyboard
Control Panel extension to set Key Repeat Rate, and Delay Until
Repeat for keyboard
Laser Prep
New for 4.0 LaserWriter Driver.
LaserWriter
Version 4.0 of LaserWriter software introduces several
enhancements you'll find when you choose Page Setup. For an
explanation of the original features, see "More About Printing"
in your LaserWriter manual. For new features, see the Read Me
document on the System Tools disk.
Change Summary:
Fixed problem in title of window when printing catalog from
Finder.
Fixed problem printing icons from the finder.
Fixed problem in line layout when more than one systel appears
in a single line at the same time.
Fixed a layout problem when using Helvetica Narrow.
Fixed a problem calculating zoom range values in Page Setup
dialog.
Fixed patterns so theat they invert correctly when white on
black is selected in Page Setup Preferences dialog.
Fixed problem with super and subscripted text.
A bug in rotated patterns on 3rd party printers has been fixed.
Smooth4 fixed to take 1 bit wide bitmaps.
Stretch operator also fixed for imaging bitmaps at various
scalings
Fixed cover page to use the correct font so that line overlaps do
not occur.
Fixed problem with flat ovals.
More rigorous test for memory full problems and adjustment of
buffer allocation if memory is low.
Eliminated output control calls if an error exists. Clean up after
an error occurs should be faster.
PostScript Error causes an abort to occur so that problems
clean up much faster.
Fixed PostScript-in-Handle comment call.
The LaserWriter attempts to do its own line layout with what it
suspects are line printer widths. Printing of text should be
much faster.
Added several new features to the dialogs.
INSC resource in the LaserWriter is changed so that it installs
only LaserWriter and LaserPrep. It does not install Chooser,
Control Panel, or FONTs as the 3.3 driver used to.
INSC resource on the system tools disk is changed so that
it will install Times, Courier, and Helvetica version 2 FONDs.
These new FONDs have correct widths for condensed and
extended styles so that these styles should work correctly in
new applications on a Mac+.
Bitmap stretch in landscape mode fixed.
Line layout has been completely changed again so that an entire
line of text is buffered internally before it is sent to the
printer. Then line layout is performed over the entire string
rather than just a piece of it.
Driver now downloads PostScript fonts even is that don't have
corresponding FONDs to go with them.
Bitmap printing now works a little differently. Bitmaps are
now made to take the fastest path possible.
A problem which sometimes resulted in a Crash when the
system FOND was purged has been fixed. The system FOND is
now never purged.
A problem in lines where multiple fonts and symbol characters
occur at the same time did not print some of the symbol
characters. This has now been fixed.
B5 page size is now fixed to give the correct dimensions.
These meet Adobe's specifications for B5 paper size.
All carriage return characters in all fonts are forced to zero
width for text measure
Wide Margins/Narrow Margins selection in Options Dialog now
work properly
Added another option feature which allows users to select
PostScript style bitmap stretching or Macintosh style since
they are different. This option also disable smoothing when
PostScript style is selected.
Dialog windows and Alerts are now centered on screen
independent of screen size.
The number of fonts which can be used in a system while
printing has been increased from approximately 150 to 32767 or
more, although the system itself will allow only about 500
families.
A problem printing strings ending with carriage return
characters has been fixed. This was most noticeable in
applications with an extra byte appearing at the end of some
text strings.
If shrink by 4 percent is selected (better bitmap printing) is
selected, the image is now centered on the page.
Fixed problem with font substitution line layout.
Driver no longer leaves around an orphan handle after the printer
was reset following a re-initialization dialog. The crash
occurred if the name of the printer was extra long (more than
15 characters).
Options have been reworked to make them more compact and
easier to use.
Fixed problem with rectangles, round rectangles, ovals and arcs
when drawn in quadrants other than the positive quadrant. Most
documents never encounter any other area.
Fixed problem downloading third-party fonts.
Monitors
New this release. To support multiple video display modes and
monitors on Macintosh II.
Mouse
Scrapbook File
No changes
Sound
Control panel extension to support new sound on Macintosh II.
Startup Device
Control Panel extension to select which SCSI device to boot
from on Macintosh II and Macintosh SE.
System
QuickDraw
The 4.1 System file contains a ROM patch to the DrawPicture
trap which allows pictures created by Color QuickDraw
(version 2 pictures) to be played back on 128K and newer
ROMs. If this patch is not present, version 2 pictures will be
displayed as blank areas.
There are several new QuickDraw features which are not
present in older versions. These include RGB colors, new
transfer modes, pixel patterns (PixPats), pixel maps
(PixMaps), and "highlight" mode. Some of these, such as
highlight mode, are irrelevant on a black and white display
and are ignored. The others must be emulated as best as the
capabilities of B/W QuickDraw allow. In general, the results
will be the same as when using Color QuickDraw to draw into
an old GrafPort on a 1-bit screen.
Calls to RGBForeColor and RGBackColor are emulated by calls
to ForeColor and BackColor. The supplied RGB value is
converted to one of the eight predefined colors in B/W
QuickDraw: Black, White, Red, Green, Blue, Cyan, Magenta,
and Yellow. The selection is based on whether the R, G or B
values are greater or less than 50%. This applies only to
explicit calls to RGBForeColor and RGBackColor, not all color
information. Note that pictures containing this information
will print in color on the ImageWriter II.
Pixel patterns cannot in general be displayed with B/W
QuickDraw, since they can be of arbitrary sizes. However,
PixPats contain within them a "1-bit" pattern, which has the
same format as an old style QuickDraw pattern. The designer
of the PixPat can set this field to a representation of the
PixPat suitable for display on old machines; if not expressly
initialized this field contains a 50% gray pattern. An
exception to this rule is dithered RGB patterns created by
MakeRGBPat. Although these patterns contain full RGB
information, this cannot be used to set colors, as this can
only be done via ForeColor and BackColor, not by setting a
gray-level pattern. Therefore, these patterns are
translated to one of eight gray-level patterns, based on the
luminance calculated form the RGB value in the pattern. This
luminance is calculated in the YIQ color model, the same
model used when the gray-scale option is selected in the
Apple video driver.
PixMaps present a similar problem to RGB patterns: there is
no way to make use of the color information encoded in them.
These PixMaps are converted into old-style BitMaps by
mapping all the colors in them to either white or black,
depending on whether the average of the R, G and B values
exceeds or falls below a 50% gray level. This results in a
"high-contrast" rendition of the image.
The new, arithmetic transfer modes defined by Color
QuickDraw are mapped into "representative" old transfer
modes. The mapping used is the same as that used by Color
QuickDraw when drawing in one-bit GrafPorts.
There is one other issue regarding new pictures which has
nothing to do with what is in them: their size. Pictures
containing 8-bit PixMaps tend to be very large, in the
vicinity of 100K or more. Many programs (notably MacWrite)
do not handle pictures larger than 32K in their data
structures and so are fundamentally incompatible with large
pictures. Others run into problems with memory
management when whacking 100K pictures to play around
with before. If large PixMaps (such as screen dumps) are not
used, however, version 2 pictures are only slightly larger
than their version 1 equivalents, and should not break any
application that handles version 1 pictures correctly. Note
that it has been possible to have pictures larger than 32K
since the 128K ROM was released, but up until now it's been
very difficult to produce a picture that large.
Fixed bug where color table was freed even if there wasn't
one.
ADBS
Keyboard ADB Service Routine Installer
Installs keyboard service routine data: loads and locks the
KMAP and KCHR resources and updates the ADB Table.
'ADBS' (2, Locked) [262]
KMAP 0 is used as default if correct one can't be found
Keyboard is flushed of messages on exit
DRVR
AppleTalk Drivers Version 48
Version 48 of the AppleTalk drivers contains significant
enhancements over the current version (40 in the MacPlus
ROMs, and 41 in system file 3.2). These enhancements
include new calls and additional resources (e.g., all
dynamic sockets can be opened simultaneously; more than
one NBP request can be outstanding at any one time).
These drivers are used by the AppleShare server. We
envision these drivers to be used in place of the MacPlus
ROM drivers in the two circumstances: (1) where one or more
of the new calls is required and (2) in servers where
additional resources are needed. These new drivers are
completely compatible with the MacPlus ROM drivers, and
can be used in any situation where the ROM drivers were
used previously.
The developer should be aware however that use of these
drivers on a MacPlus or 512Ke will result in the loss of
about 11K of system heap, since they completely replace
the ROM drivers and since more memory is required to
provide the additional resources. This may require the
system heap to be grown, depending on the application.
On an original ROM 512K Mac, these new drivers can be
placed in the system file and will load on the first _Open
call. On a MacPlus or 512Ke, however, ROM drivers
supersede those in the system file, so the new drivers
must be loaded in some other method.Please contact APDA for
complete information on AppleTalk Changes.
'DRVR' (13, ".Alarm Clock", Purgeable) [3954]
Updates correctly when control panel changes time cycle.
Won't toggle AM/PM unless user does so.
Calls IUGetIntl instead of INTL resource with id=O.
Changed file Clock.a - Special case Mac II ROMs to update
flashing apple in Menu correctly.
'DRVR' (14, ".Key Caps", Purgeable) [2250]
Added Saratoga resource to Key Layout file.
'DRVR' (15, ".Chooser", Purgeable) [9094]
Credit no longer replaces user name
Added a strategic HNoPurge to prevent desktop resource
form getting purged at an inopportune time (very
unlikely).
'DRVR' (16, ".Find File", Purgeable) [9250]
There is a new feature in the Find File desk accessory.
Once Find File locates a file with the name you've
specified, you can select the file and choose Move to
Desktop from the Find File menu. The file will then
appear on your desktop.
As long as the file stays on the desktop when you're not
working on it, you can use the Put Away command to put
it back exactly where it came from. Or you can put away
the file yourself (in any window or folder).
Change Summary:
MoveToDesktop command added. This command moves the
currently selected file in the list of found files to the
Finder's desktop, as if the user had dragged it there. The
file is also deleted from the list of found files. The file
can be moved back to its original folder by selecting the
Finder's PutAway menu command.
It is no longer possible to edit text while Find File is
searching.
The Cut and Copy commands no longer destroy the desk
scrap when no text is selected.
Disable Move To Desktop if we are running with
AppleShare server active.
'DRVR' (17, ".Scrapbook", Purgeable) [2944]
'DRVR' (18, ".Control Panel", Purgeable) [4612]
The ram cache arrows and size indicators do not appear if
the control panel is running under switcher or twitcher.
A reset pRAM feature has been added. Since the battery
cannot be unplugged from the system in the MacII or Mac
SE, recover from bad pRAM settings can not be solved in
the usual way. As a way of "unpluging" the battery, a
power feature has been added to the control panel. It is
intended to be used only in connection with assistance
from Apple"s tech support people.
Access to this feature is made by holding down the Shift,
Command, and Option key while launching the control
panel. If the machine is either a Mac SE or a MacII, then a
dialog will appear informing the user of what is about to
happen. If the user chooses to continue, the pram validity
byte is trashed and upon restart the pRAM will be reset
to its default values. The clock/calender settings are not
affected.Update of pram's desktop bit.
Double clicking in the 'mini desktop' now save the edited
ppat to the ppt# resource without updating the desktop.
Single clicks still update the desktop.
DSAT
'DSAT' (2, SysHeap, Locked) [1200]
Loaded by the script manager when the Initialization
Resources are executed. These used to be INIT 2 but were
moved for the Script Manager. The Shutdown alert has
also been added.
FKEY
'FKEY' (3, Purgeable) [612]
Function Key 3 (Command-Shift-3) -- Creates a
MacPaint document consisting of a snapshot of the screen.
Now checks for bit depth of screen. Will not snapshot if
depth <>1.
Uses the first entry int the DeviceList as the screen to
snapshot instead of using the low memory global
scrnbase.
INIT
Moved HD20 startup alert here from the boot table.
Removed the HD20 Startup alert. It no resides in the user
alert table.
'INIT' (0, SysHeap, Locked) [222]
Changed INIT o to have precisely the same header is
historical versions. Some Apple applications and possibly
other depend on subtle, undocumented local variables
stuffed into the INIT=O header. Some Apple applications
have been trashing KeyTrans, causing this ugly behavior.
Major changes in this software:
Added new meta-number for keyboard script toggling.
Replaced AppScript global and environment verb with Last
Script.
Removed NewBufPtr call in untweaked version of
initialization code.
Keyboard and DSAT loading is no longer dependent on the
ScriptManager, since we can use ExpandMem fields.
Key1Trans and Key2Trans now only depend on the
KeyTrans trap: each is otherwise self-contained. They
now function properly at INIT 31 time.
DSAT 2 (used to be DSAT 1) now is loaded by PTCH 0 to
fix Startup code bug.
'INIT' (1, SysHeap, Locked) [222]
These use to contain the keyboard translation hooks and
would append themselves onto the system when they were
first executed by storing pointers into themselves in low
memory globals (Key1Trans and Key2Trans). They still
use these hooks, but no longer contain the keyboard
translation code. This code has now been moved into the
ROM (into the patch code for older machines) and can be
accessed via the _KeyTrans trap. The hooks in these
resources now just copy the arguments and call the trap.
This was done so that the older machines would use the
new keyboard mechanism, which is much better than the
old one.
'INIT' (13, SysHeap, Locked) [256]
This is the patch for BlockMove and OpenResFile
'INIT' (2, Locked) [5042]
This resource contains the code for the Script Manager
and the Roman Interface System. When it is executed the
first time, it allocates the global storage for the Script
Manager and sets up the script environment and the
_ScriptUtil trap. Other script interface systems plug into
this environment by storing a pointer in the Script
Manager globals. This resource is also responsible for
loading the user alert table, DSAT 2, which it replaced.
'INIT' (22, SysHeap, Purgeable, Locked) [276]
Opens MPP out of the file AppleTalk in the System Folder.
Change Summary:
Guarantee 16k in sys heap if doing open.
'INIT' (3, "Q", SysHeap, Locked) [580]
Patch code which supports the MiniFinder launching as
well as "SubLaunch" of an application from another.
The Shutdown calls used to do an UnloadScrap before
unmounting and ejecting the disks. This was causing
minor problems in the Finder, since it would require
inserting the disk if it was not in the machine. Since the
Clipboard File is ignored when you re-boot, there is no
reason to write it out anyway.
'INIT' (30, Locked) [318]
Installs the necessary mouse tracking code for Mac Plus.
Uses 'mcky' mouse tracking bytes.
100,102,200,202,300,302,500,502,600,602,700,702